//
//  SHPayManager.h
//  SHWeChatAliPay
//
//  Created by 索晓晓 on 2021/10/26.
//

#import <Foundation/Foundation.h>
#import <WechatOpenSDK/WXApi.h>


/// 微信支付成功通知
#define SHWXPaySuccessNotification @"SHWXPaySuccessNotification"
/// 微信支付失败通知
#define SHWXPayFailNotification @"SHWXPayFailNotification"
/// 微信登录成功通知
#define SHWXLoginSuccessNotification @"SHWXLoginSuccessNotification"
/// 微信登录失败通知
#define SHWXLoginFailNotification @"SHWXLoginFailNotification"
/// 微信分享通知
#define SHWXShareResultNotification @"SHWXShareResultNotification"

NS_ASSUME_NONNULL_BEGIN

@interface SHPayManager : NSObject <WXApiDelegate>

+ (instancetype)sharedInstance;

/// 注册微信
/// @param appid appid
/// @param appSecret appSecret
/// @param merchantKey 商户密钥, 如果提供, 则在支付的时候使用该字段去签名, 不提供则不签名,直接使用参数中的签名去支付
/// @param universalLink link
+ (void)registerApp:(NSString * _Nullable)appid
          appSecret:(NSString * _Nullable)appSecret
        merchantKey:(NSString * _Nullable)merchantKey
      universalLink:(NSString *_Nullable)universalLink;

/// 停止输出日志
+ (void)stopWXLog;

/**
 @brief 处理微信url, 如果wechatSDK不能处理该url，则返回false
 @param url url
 @return 微信能处理, 返回true, 否则返回false
 */
+ (BOOL)openURL:(NSURL*)url;

/*! @brief 处理微信通过Universal Link启动App时传递的数据
 * 需要在 application:continueUserActivity:restorationHandler:中调用。
 * @param userActivity 微信启动第三方应用时系统API传递过来的userActivity
 * @return 成功返回YES，失败返回NO。
 */
+ (BOOL)handleOpenUniversalLink:(NSUserActivity *)userActivity;


/// 微信登录
/// @param complate 完成后的回调
+ (void)doLoginComplate:(void(^)(NSDictionary *result))complate;

/// 微信支付
/// @param dict 支付需要用到的数据
/// @param complate 完成后的回调
+ (void)payInfo:(NSDictionary *)dict
       complate:(void(^)(NSDictionary *dict))complate;

/// 微信纯文本分享
/// @param title 文本
/// @param isFirendCircle 是否分享到朋友圈
+ (void)shareTitle:(NSString *)title
      firendCircle:(BOOL)isFirendCircle;

/// 微信纯图片分享
/// @param imageData 文本
/// @param isFirendCircle 是否分享到朋友圈
+ (void)shareImageData:(NSData *)imageData
            thumbImage:(NSData *)thumbImageData
          firendCircle:(BOOL)isFirendCircle;

/// 微信纯文本分享
/// @param title 文本
/// @param description 描述
/// @param thumbImage 缩略图
/// @param webpageUrl 跳转的地址
/// @param isFirendCircle 是否分享到朋友圈
+ (void)shareTitle:(NSString *)title
       description:(NSString *)description
        thumbImage:(UIImage *)thumbImage
        webpageUrl:(NSString *)webpageUrl
      firendCircle:(BOOL)isFirendCircle;

@end

NS_ASSUME_NONNULL_END
